feat(mcsb): add Microsoft Cloud Security Benchmark security skill - #2499
Conversation
…d references - introduce control index and individual domain references for MCSB v2 - implement assessment checklists, controls, and mitigations for each domain - establish cross-reference matrix with NIST and CIS Controls - create lookup playbook for retrieving volatile service-specific controls 🔒 - Generated by Copilot
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2499 +/- ##
==========================================
- Coverage 82.53% 82.53% -0.01%
==========================================
Files 155 155
Lines 21123 21123
Branches 13 13
==========================================
- Hits 17434 17433 -1
- Misses 3687 3688 +1
Partials 2 2
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
Eval Execution✅ Status: Passed — no merge-blocking failures (10 advisory assertion failure(s) present)
|
HVE Builder rubric review —
|
| Field | Value |
|---|---|
| Mode | review (read-only, static) |
| Static verdict | Pass — no Critical/High findings |
| Behavior gate | Satisfied-and-skipped — no-runtime knowledge-reference target (no model actions, tool dispatch, or executable decision rules of its own) |
| Validation | Not requested |
| Overall | Pass |
Strengths
- Correct artifact type and progressive disclosure: the entrypoint is compact and routes all detail one level deep into
references/. - Durable-vs-volatile split is stated clearly, with per-service lookups delegated to the
Researcher Subagentviareferences/lookup-playbook.md. - Licensing posture is right for Microsoft Learn Terms-of-Use content: paraphrase-first, explicit "does not reproduce verbatim" attribution, canonical source cited.
- Version discipline: v2/preview status, retrieval date, the GS→AI domain change, and a "re-verify before a compliance decision" caveat are all surfaced.
- Clean skill frontmatter (
name,description,license,user-invocable,metadata); no prohibitedtools/model/agent/handoffs/applyTofields.user-invocable: falseis appropriate for a planner/reviewer-consumed knowledge pack.
Recommended polish (non-blocking)
- Medium — em dashes in the Overview paragraph violate the repository writing-style convention (there is a dedicated
no-em-dashcustom lint rule)..github/skills/**is excluded fromlint:md, and the siblingowasp-llmskill shares this pattern, so it is collection-wide precedent rather than a mcsb-only defect. Fix by using colons/commas/parentheses. - Low — MD022: add a blank line before the
## Version and stabilityheading. - Low — wording: "Normative references" slightly overstates authority for paraphrased content; "Reference documents" or "Domain references" reads more accurately.
Recorded uncertainty: the "MCSB v2 replaces Governance and Strategy (GS) with Artificial Intelligence Security (AI)" claim is about preview content and was not independently verifiable in read-only review scope. The skill already discloses this with a re-verify caveat, which is the correct handling.
Generated by the hve-builder skill review workflow as part of the standard authoring gate.
- specify non-public source repository for MCSB v2 - detail licensing differences with older benchmarks - emphasize paraphrasing over verbatim reproduction 🔒 - Generated by Copilot
…on and update related references - create mcsb.md for MCSB v2 control-domain taxonomy - update README.md and skills/README.md to include MCSB references - adjust ms.date for consistency across documentation 🔒 - Generated by Copilot
🔗 - Generated by Copilot
…eat/mcsb-security-skill
🔒 - Generated by Copilot
🔒 - Generated by Copilot
…terms 🔒 - Generated by Copilot
🔒 - Generated by Copilot
…levels and exposure terms 🔒 - Generated by Copilot
🔤 - Generated by Copilot
…skill signals 🔒 - Generated by Copilot
…vior conformance evals 🔒 - Generated by Copilot
…crosoft#2499) ## Description This PR adds a new **MCSB** (Microsoft Cloud Security Benchmark v2) security skill and wires it into the existing security planning and review workflow. The skill provides a durable control-domain taxonomy for assessing Azure cloud resources, with crosswalks to *NIST SP 800-53 Rev. 5* and *CIS Controls v8.1*, while deliberately deferring volatile, per-service control lookups to runtime retrieval. The change is additive: it introduces the skill and its reference set, registers it in the relevant collections and generated plugin outputs, and updates the security agents and standards-mapping instructions so that MCSB is loaded when Azure cloud resources are detected. ### New MCSB skill The skill lives under *.github/skills/security/mcsb/* and separates durable control-domain content from volatile per-service content. - Added **`.github/skills/security/mcsb/SKILL.md`** as the skill entrypoint, defining metadata, the normative reference list, the durable-versus-volatile content distinction, a runtime lookup playbook reference, the 12 control domains, and stated mappings to *NIST SP 800-53 Rev. 5* and *CIS Controls v8.1*. - Added **`references/00-control-index.md`** with the domain catalog (`NS`, `IM`, `PA`, `DP`, `AM`, `LT`, `IR`, `PV`, `ES`, `BR`, `DS`, `AI`) and a domain-level NIST 800-53 and CIS Controls cross-reference matrix. - Added **12 domain reference files**, each with an objective, assessment checklist, controls and mitigations, anti-patterns, a NIST/CIS crosswalk, and volatile-lookup guidance: - *01-network-security.md* (NS), *02-identity-management.md* (IM), *03-privileged-access.md* (PA), *04-data-protection.md* (DP), *05-asset-management.md* (AM), *06-logging-threat-detection.md* (LT), *07-incident-response.md* (IR), *08-posture-vulnerability-management.md* (PV), *09-endpoint-security.md* (ES), *10-backup-recovery.md* (BR), *11-devops-security.md* (DS), and *12-ai-security.md* (AI). - The **AI Security** reference notes Security Planner handling when `raiEnabled` is true. - Added **`references/lookup-playbook.md`** describing the skill as the durable control-domain taxonomy with a representative domain-grain crosswalk, and guidance for retrieving volatile service-specific controls at runtime. ### Security planning and assessment integration > Loading MCSB is gated on detecting Azure cloud resources, so non-Azure workloads are unaffected. - Updated **`security-planner.agent.md`** to add an Azure cloud resources trigger that loads the `mcsb` skill in phases 3 and 4, and to use the MCSB stable control-domain taxonomy and crosswalk in phase 3 while delegating volatile per-service lookups. - Updated **`security-reviewer.agent.md`** to add `mcsb` to the example security skills for reference resolution and to the assessable skills list. - Updated **`codebase-profiler.agent.md`** to add `mcsb` to skill resolution examples and to add technology signals for **Azure Bicep**, **ARM templates**, **Terraform** with the `azurerm` provider, Azure-targeting **Azure Pipelines**, and Azure service references. - Updated **`skill-assessor.agent.md`** to add `mcsb` to skill resolution examples, generalize index handling to support control or benchmark indexes (including *references/00-control-index.md*), and treat control-domain identifiers as the assessment grain for benchmark skills. - Updated **`standards-mapping.instructions.md`** to delegate only MCSB *per-service* control mappings, load `mcsb` for Azure cloud resources, and retain delegation for volatile per-service lookups. ### Collection and plugin registration - Registered the `mcsb` skill in **`collections/security.collection.yml`** and **`collections/hve-core-all.collection.yml`** with `kind: skill` and `maturity: experimental`. - Added a describing row in **`collections/security.collection.md`** and **`collections/hve-core-all.collection.md`**. - Regenerated plugin outputs: added `mcsb` rows to **`plugins/security/README.md`** and **`plugins/hve-core-all/README.md`**, and added the skill symlinks under both plugin *skills/security/* paths. ## Related Issue(s) None ## Type of Change Select all that apply: **Code & Documentation:** * [ ] Bug fix (non-breaking change fixing an issue) * [x] New feature (non-breaking change adding functionality) * [ ] Breaking change (fix or feature causing existing functionality to change) * [ ] Documentation update **Infrastructure & Configuration:** * [ ] GitHub Actions workflow * [ ] Linting configuration (markdown, PowerShell, etc.) * [ ] Security configuration * [ ] DevContainer configuration * [ ] Dependency update **AI Artifacts:** * [ ] Reviewed contribution with `prompt-builder` agent and addressed all feedback * [x] Copilot instructions (`.github/instructions/*.instructions.md`) * [ ] Copilot prompt (`.github/prompts/*.prompt.md`) * [x] Copilot agent (`.github/agents/*.agent.md`) * [x] Copilot skill (`.github/skills/*/SKILL.md`) * [ ] Copilot hook (`.github/hooks/*/*.json`) * [ ] Eval spec added/updated for changed AI artifacts (`evals/`) > Note for AI Artifact Contributors: > > * Agents: Research, indexing/referencing other project (using standard VS Code GitHub Copilot/MCP tools), planning, and general implementation agents likely already exist. Review `.github/agents/` before creating new ones. > * Skills: Must include both bash and PowerShell scripts. See [Skills](../docs/contributing/skills.md). > * Model Versions: Only contributions targeting the **latest Anthropic and OpenAI models** will be accepted. Older model versions (e.g., GPT-3.5, Claude 3) will be rejected. > * See [Agents Not Accepted](../docs/contributing/custom-agents.md#agents-not-accepted) and [Model Version Requirements](../docs/contributing/ai-artifacts-common.md#model-version-requirements). **Other:** * [ ] Script/automation (`.ps1`, `.sh`, `.py`) * [ ] Other (please describe): ## Sample Prompts (for AI Artifact Contributions) **User Request:** > Run a security assessment on this Azure Bicep infrastructure against the Microsoft Cloud Security Benchmark. **Execution Flow:** 1. The **codebase-profiler** subagent detects Azure signals (Bicep, ARM, Terraform `azurerm`, Azure Pipelines, or Azure service references) and resolves the `mcsb` skill. 2. The **security-planner** agent loads the `mcsb` skill in phases 3 and 4 and uses the stable control-domain taxonomy and NIST/CIS crosswalk, delegating volatile per-service lookups. 3. The **skill-assessor** subagent reads *references/00-control-index.md*, treats each control-domain identifier (`NS`, `IM`, `PA`, and so on) as the assessment grain, and evaluates the codebase against each domain's checklist, controls, and anti-patterns. 4. Volatile, per-service control specifics are retrieved at runtime per the lookup playbook rather than from static content. **Output Artifacts:** Security planning and review findings organized by MCSB control domain, each mapped to NIST SP 800-53 Rev. 5 and CIS Controls v8.1 references. No new files are written to the repository by running the skill; the skill supplies reference content consumed by the security agents. **Success Indicators:** The security planner and reviewer surface MCSB domain identifiers in their findings, Azure resources trigger MCSB loading, and each finding cites the corresponding domain reference and framework crosswalk. > [!NOTE] > Human review is recommended for the agent-populated Sample Prompts content above. ## Testing Automated validation commands run during PR generation: * `npm run lint:md` — Passed (0 errors). * `npm run spell-check` — Passed (0 issues). * `npm run lint:frontmatter` — Passed (848 files, 0 errors). * `npm run validate:skills` — Passed (`mcsb` and 52 other skills, 0 errors). * `npm run lint:md-links` — Passed. * `npm run lint:ps` — Passed (all files clean). * `npm run eval:lint:schema` — Passed (10 eval specs, coverage complete). * `npm run plugin:generate` — Passed; regeneration produced no drift. * `npm run docs:test` — Skipped; the Docusaurus subproject has no installed dependencies in this environment (`jest: not found`). No Docusaurus files were changed. Security analysis of the diff found no sensitive data, secrets, or dependency changes. The change is additive documentation-style reference content with no executable scripts. Manual testing was not performed. > [!NOTE] > Add manual testing descriptions when applicable. ## Checklist ### Required Checks * [ ] Documentation is updated (if applicable) * [x] Files follow existing naming conventions * [x] Changes are backwards compatible (if applicable) * [ ] Tests added for new functionality (if applicable) (N/A — reference-content skill with no executable code paths to test) ### AI Artifact Contributions <!-- If contributing an agent, prompt, instruction, or skill, complete these checks --> * [ ] Used `/prompt-analyze` to review contribution * [ ] Addressed all feedback from `prompt-builder` review * [ ] Verified contribution follows common standards and type-specific requirements ### Required Automated Checks The following validation commands must pass before merging: * [x] Markdown linting: `npm run lint:md` * [x] Spell checking: `npm run spell-check` * [x] Frontmatter validation: `npm run lint:frontmatter` * [x] Skill structure validation: `npm run validate:skills` * [x] Link validation: `npm run lint:md-links` * [x] PowerShell analysis: `npm run lint:ps` * [x] Eval spec schema and coverage (if AI artifacts changed): `npm run eval:lint:schema` * [x] Plugin freshness: `npm run plugin:generate` * [ ] Docusaurus tests: `npm run docs:test` (Skipped — docs subproject dependencies not installed in this environment; no Docusaurus files changed) ## Security Considerations <!--⚠️ WARNING: Do not commit sensitive information such as API keys, passwords, or personal data --> * [x] This PR does not contain any sensitive or NDA information * [ ] Any new dependencies have been reviewed for security issues (N/A — no dependency changes) * [ ] Security-related scripts follow the principle of least privilege (N/A — no security scripts modified) ## GHCP Artifact Maturity > [!WARNING] > This PR includes **experimental** GHCP artifacts that may have breaking changes. > - `.github/skills/security/mcsb/SKILL.md` | File | Type | Maturity | Notes | |------------------------------------------------------|--------------|-----------------|------------------| | `security/mcsb/SKILL.md` | Skill |⚠️ experimental | Pre-release only | | `security-planner.agent.md` | Agent | ✅ stable | All builds | | `security-reviewer.agent.md` | Agent | ✅ stable | All builds | | `subagents/codebase-profiler.agent.md` | Agent | ✅ stable | All builds | | `subagents/skill-assessor.agent.md` | Agent | ✅ stable | All builds | | `standards-mapping.instructions.md` | Instructions | ✅ stable | All builds | ### GHCP Maturity Acknowledgment - [ ] I acknowledge this PR includes non-stable GHCP artifacts - [ ] Non-stable artifacts are intentional for this change --------- Co-authored-by: Jamie Kim <jamiekim500@gmail.com> Co-authored-by: Chris Montazer <17170709+rezatnoMsirhC@users.noreply.github.com>
Description
This PR adds a new MCSB (Microsoft Cloud Security Benchmark v2) security skill and wires it into the existing security planning and review workflow. The skill provides a durable control-domain taxonomy for assessing Azure cloud resources, with crosswalks to NIST SP 800-53 Rev. 5 and CIS Controls v8.1, while deliberately deferring volatile, per-service control lookups to runtime retrieval.
The change is additive: it introduces the skill and its reference set, registers it in the relevant collections and generated plugin outputs, and updates the security agents and standards-mapping instructions so that MCSB is loaded when Azure cloud resources are detected.
New MCSB skill
The skill lives under .github/skills/security/mcsb/ and separates durable control-domain content from volatile per-service content.
.github/skills/security/mcsb/SKILL.mdas the skill entrypoint, defining metadata, the normative reference list, the durable-versus-volatile content distinction, a runtime lookup playbook reference, the 12 control domains, and stated mappings to NIST SP 800-53 Rev. 5 and CIS Controls v8.1.references/00-control-index.mdwith the domain catalog (NS,IM,PA,DP,AM,LT,IR,PV,ES,BR,DS,AI) and a domain-level NIST 800-53 and CIS Controls cross-reference matrix.raiEnabledis true.references/lookup-playbook.mddescribing the skill as the durable control-domain taxonomy with a representative domain-grain crosswalk, and guidance for retrieving volatile service-specific controls at runtime.Security planning and assessment integration
security-planner.agent.mdto add an Azure cloud resources trigger that loads themcsbskill in phases 3 and 4, and to use the MCSB stable control-domain taxonomy and crosswalk in phase 3 while delegating volatile per-service lookups.security-reviewer.agent.mdto addmcsbto the example security skills for reference resolution and to the assessable skills list.codebase-profiler.agent.mdto addmcsbto skill resolution examples and to add technology signals for Azure Bicep, ARM templates, Terraform with theazurermprovider, Azure-targeting Azure Pipelines, and Azure service references.skill-assessor.agent.mdto addmcsbto skill resolution examples, generalize index handling to support control or benchmark indexes (including references/00-control-index.md), and treat control-domain identifiers as the assessment grain for benchmark skills.standards-mapping.instructions.mdto delegate only MCSB per-service control mappings, loadmcsbfor Azure cloud resources, and retain delegation for volatile per-service lookups.Collection and plugin registration
mcsbskill incollections/security.collection.ymlandcollections/hve-core-all.collection.ymlwithkind: skillandmaturity: experimental.collections/security.collection.mdandcollections/hve-core-all.collection.md.mcsbrows toplugins/security/README.mdandplugins/hve-core-all/README.md, and added the skill symlinks under both plugin skills/security/ paths.Related Issue(s)
None
Type of Change
Select all that apply:
Code & Documentation:
Infrastructure & Configuration:
AI Artifacts:
prompt-builderagent and addressed all feedback.github/instructions/*.instructions.md).github/prompts/*.prompt.md).github/agents/*.agent.md).github/skills/*/SKILL.md).github/hooks/*/*.json)evals/)Other:
.ps1,.sh,.py)Sample Prompts (for AI Artifact Contributions)
User Request:
Execution Flow:
azurerm, Azure Pipelines, or Azure service references) and resolves themcsbskill.mcsbskill in phases 3 and 4 and uses the stable control-domain taxonomy and NIST/CIS crosswalk, delegating volatile per-service lookups.NS,IM,PA, and so on) as the assessment grain, and evaluates the codebase against each domain's checklist, controls, and anti-patterns.Output Artifacts:
Security planning and review findings organized by MCSB control domain, each mapped to NIST SP 800-53 Rev. 5 and CIS Controls v8.1 references. No new files are written to the repository by running the skill; the skill supplies reference content consumed by the security agents.
Success Indicators:
The security planner and reviewer surface MCSB domain identifiers in their findings, Azure resources trigger MCSB loading, and each finding cites the corresponding domain reference and framework crosswalk.
Note
Human review is recommended for the agent-populated Sample Prompts content above.
Testing
Automated validation commands run during PR generation:
npm run lint:md— Passed (0 errors).npm run spell-check— Passed (0 issues).npm run lint:frontmatter— Passed (848 files, 0 errors).npm run validate:skills— Passed (mcsband 52 other skills, 0 errors).npm run lint:md-links— Passed.npm run lint:ps— Passed (all files clean).npm run eval:lint:schema— Passed (10 eval specs, coverage complete).npm run plugin:generate— Passed; regeneration produced no drift.npm run docs:test— Skipped; the Docusaurus subproject has no installed dependencies in this environment (jest: not found). No Docusaurus files were changed.Security analysis of the diff found no sensitive data, secrets, or dependency changes. The change is additive documentation-style reference content with no executable scripts.
Manual testing was not performed.
Note
Add manual testing descriptions when applicable.
Checklist
Required Checks
AI Artifact Contributions
/prompt-analyzeto review contributionprompt-builderreviewRequired Automated Checks
The following validation commands must pass before merging:
npm run lint:mdnpm run spell-checknpm run lint:frontmatternpm run validate:skillsnpm run lint:md-linksnpm run lint:psnpm run eval:lint:schemanpm run plugin:generatenpm run docs:test(Skipped — docs subproject dependencies not installed in this environment; no Docusaurus files changed)Security Considerations
GHCP Artifact Maturity
Warning
This PR includes experimental GHCP artifacts that may have breaking changes.
.github/skills/security/mcsb/SKILL.mdsecurity/mcsb/SKILL.mdsecurity-planner.agent.mdsecurity-reviewer.agent.mdsubagents/codebase-profiler.agent.mdsubagents/skill-assessor.agent.mdstandards-mapping.instructions.mdGHCP Maturity Acknowledgment